import request from "@/utils/request";

const IMAGE_BASE_URL = "/rest/server/resultImage";

const ImageAPI = {
  /**
   *  图片列表
   */
  getList(queryParams: ResultImagePageQuery) {
    return request<any, PageResult<ResultImageVO[]>>({
      url: `${IMAGE_BASE_URL}/list`,
      method: "get",
      params: queryParams,
    });
  },
  /**
   *  图片列表
   */
  generate(data: GenerateResultImageForm) {
    return request<any, GenerateResultImageSuccessMessage[]>({
      url: `${IMAGE_BASE_URL}/generate`,
      method: "post",
      data: data,
      headers: { "Content-Type": "application/json;charset=utf-8" },
    });
  },
};

export default ImageAPI;

/** 推荐图片列表 */
export interface ResultImageVO {
  /** id */
  id?: number;
  /** 图片 */
  imageUrl?: string;
  /** 图片宽(已px为单位) */
  width?: number;
  /** 图片高(已px为单位) */
  height?: number;
  /** 图片创建时间 */
  createdAt?: string;
}

/**
 * 用户分页查询对象
 */
export interface ResultImagePageQuery extends PageQuery {
  /** 开始时间 */
  createTime?: [string, string];
}

/** 生成图片对象 */
export interface GenerateResultImageForm {
  /** 原图id */
  id: number;
  /** 样式图片id */
  styleImageId: number;
}

/** websocket生成图片成功对象 */
export interface GenerateResultImageSuccessMessage {
  /** 结果图id */
  id: number;
  /** 原图id */
  originalImageId: number;
  /** 样式图片id */
  imageUrl: string;
  /** 非后端字段 */
  generated?: boolean;
}
